//
// Created by hay boy on 2022/7/26.
//

#ifndef ALGORITHMS_MINPRIORITYQUEUE_H
#define ALGORITHMS_MINPRIORITYQUEUE_H
template<class T>
class minPriorityQueue
{
public:
    virtual ~minPriorityQueue() = default;
    virtual bool empty() const = 0;
    // return true iff queue is empty
    virtual int size() const = 0;
    // return number of elements in queue
    virtual const T& top() = 0;
    // return reference to the min element
    virtual void pop() = 0;
    // remove the top element
    virtual void push(const T& theElement) = 0;
    // add theElement to the queue
};
#endif //ALGORITHMS_MINPRIORITYQUEUE_H
